package org.syx.picturebackend.exception;

import lombok.Getter;

/**
 * 业务异常类，继承自 RuntimeException
 */
@Getter
public class BusinessException extends RuntimeException {

    /**
     * 错误码
     */
    private final int code;

    /**
     * 构造方法，传入错误码和消息内容
     * @param code
     * @param message
     */
    public BusinessException(int code, String message) {
        super(message);
        this.code = code;
    }

    /**
     * 构造一个新的 BusinessException 实例，使用指定的错误代码初始化。
     * @param errorCode 错误代码，用于设置异常的消息和代码。
     */
    public BusinessException(ErrorCode errorCode) {
        super(errorCode.getMessage());
        this.code = errorCode.getCode();
    }

    /**
     * 构造函数用于创建一个具有指定错误代码和消息的BusinessException实例
     * @param errorCode 错误代码，表示业务异常的类型
     * @param message 异常消息，描述异常的具体情况
     */
    public BusinessException(ErrorCode errorCode, String message) {
        super(message);
        this.code = errorCode.getCode();
    }

}